package com.kang.user.client;

import com.kang.common.R;
import com.kang.user.to.BrandTo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

/**
 * ManagerClient 默认熔断实现
 *
 * 当 "kang-manager" 服务不可用时提供降级处理。
 */
@Component
@Slf4j
public class ManagerClientImpl implements ManagerClient {

	/**
	 * 获取品牌列表失败时的降级逻辑
	 *
	 * @param cookie 请求头中的 Cookie 信息
	 * @return 错误响应
	 */
	@Override
	public R findAll(String cookie) {
		log.warn("Fallback: 无法访问 kang-manager 服务 --> findAll()，请求 Cookie: {}", cookie);
		return R.error("无法访问 kang-manager 服务 --> findAll()!");
	}

	/**
	 * 根据 ID 获取品牌失败时的降级逻辑
	 *
	 * @param id 品牌 ID
	 * @return 错误响应
	 */
	@Override
	public R findById(Long id) {
		log.warn("Fallback: 无法访问 kang-manager 服务 --> findById()，品牌 ID: {}", id);
		return R.error("无法访问 kang-manager 服务 --> findById()!");
	}

	/**
	 * 添加品牌失败时的降级逻辑
	 *
	 * @param brand 品牌实体
	 * @return 错误响应
	 */
	@Override
	public R add(BrandTo brand) {
		log.warn("Fallback: 无法访问 kang-manager 服务 --> add()，品牌信息: {}", brand);
		return R.error("无法访问 kang-manager 服务 --> add()!");
	}
}
